package actionspeedycasemysql

const (

	// ActionElementCasesClothing 一级类型
	ActionElementCasesClothing   = 1 //服装
	ActionElementCasesAppearance = 2 //饰品
	ActionElementCasesTool       = 3 //功能
	ActionElementCasesToy        = 4 //玩具
	// ActionElementCasesOneSuite 服饰
	ActionElementCasesOneSuite = 1 //套装 （连衣群等，一体的套装）
	ActionElementCasesOneHair  = 2 //头发
	ActionElementCasesOneUpper = 3 // 上半身
	ActionElementCasesOneLower = 4 // 下半身
	ActionElementCasesOneShoes = 5 // 鞋子
	// ActionElementCasesTwoHead 外观
	ActionElementCasesTwoHead = 14 // 头顶/头饰
	ActionElementCasesTwoBack = 15 // 背后/翅膀
	ActionElementCasesTwoHalo = 16 // 光环

	ActionElementCasesFragment = 30001310 //碎片的唯一编号
)

type ActionElementCases struct {
}

var ActionElementCasesObject ActionElementCases

func (e ActionElementCases) ConditionsTwoType() []int {
	return []int{
		ActionElementCasesTwoHead,
		ActionElementCasesTwoBack,
		ActionElementCasesTwoHalo,
	}
}

func (e ActionElementCases) ConditionsTwoTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ConditionsTwoType() {
		m[s] = e.ConditionsTwoTypeString(s)
	}
	return m
}

func (e ActionElementCases) ConditionsTwoTypeString(tag int) string {
	switch tag {
	case ActionElementCasesTwoHead:
		return "头饰"
	case ActionElementCasesTwoBack:
		return "翅膀"
	case ActionElementCasesTwoHalo:
		return "光环"
	default:
		return ""
	}
}

func (e ActionElementCases) ConditionsType() []int {
	return []int{
		ActionElementCasesOneSuite,
		ActionElementCasesOneHair,
		ActionElementCasesOneUpper,
		ActionElementCasesOneLower,
		ActionElementCasesOneShoes,
	}
}

func (e ActionElementCases) ConditionsTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ConditionsType() {
		m[s] = e.ConditionsTypeString(s)
	}
	return m
}

func (e ActionElementCases) ConditionsTypeString(tag int) string {
	switch tag {
	case ActionElementCasesOneSuite:
		return "套装"
	case ActionElementCasesOneHair:
		return "头发"
	case ActionElementCasesOneUpper:
		return "上半身"
	case ActionElementCasesOneLower:
		return "下半身"
	case ActionElementCasesOneShoes:
		return "鞋子"
	default:
		return ""
	}
}

func (e ActionElementCases) Tag() []int {
	return []int{
		TagOne,
		TagTwo,
		TagThree,
		TagFour,
	}
}

func (e ActionElementCases) TagMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.Tag() {
		m[s] = e.TagString(s)
	}
	return m
}

func (e ActionElementCases) TagString(tag int) string {
	switch tag {
	case TagOne:
		return "一级"
	case TagTwo:
		return "二级"
	case TagThree:
		return "三级"
	case TagFour:
		return "四级"
	default:
		return "公有"
	}
}

func (e ActionElementCases) ObserveDrawTool() []int {
	return []int{}
}

func (e ActionElementCases) ObserveDrawToolMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ObserveDrawTool() {
		m[s] = e.ObserveDrawToolString(s)
	}
	return m
}

func (e ActionElementCases) ObserveDrawToolString(tag int) string {
	switch tag {
	default:
		return "其他"
	}
}

func (e ActionElementCases) ObserveDrawType() []int {
	return []int{
		ActionElementCasesClothing,
		ActionElementCasesAppearance,
		ActionElementCasesTool,
		ActionElementCasesToy,
	}
}

func (e ActionElementCases) ObserveDrawMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ObserveDrawType() {
		m[s] = e.ObserveDrawString(s)
	}
	return m
}

func (e ActionElementCases) ObserveDrawString(tag int) string {
	switch tag {
	case ActionElementCasesClothing:
		return "服饰"
	case ActionElementCasesAppearance:
		return "道具"
	case ActionElementCasesTool:
		return "功能"
	case ActionElementCasesToy:
		return "玩具"
	default:
		return "其他"
	}
}
